package JVM相关知识;

/**
 * @author coderFu
 * @create 2021/12/20
 * JVM四种引用类型
 */
public class FourReference {

    public static void main(String[] args) {
        // 强引用和 软引用================
//        SoftReference<byte[]> m = new SoftReference<>(new byte[1024*1024*2009]);
//
//        System.out.println(m.get());
//        System.gc();
//        try{
//            Thread.sleep(2000L);
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        System.out.println(m.get());
//        //再分配一个数组
//        System.gc();
//        byte[] n = new byte[1024*1024];
//        System.out.println(m.get());
        //弱引用 =======================
//        WeakReference<byte[]> m = new WeakReference<>(new byte[1024*1024]);
//        System.out.println(m.get());
//        System.gc();
//        System.out.println(m.get());

        //虚引用===================== 必须和一个数组一起使用
    }


    @Override
    protected void finalize() throws Throwable {
        super.finalize();
        System.out.println("垃圾回收器执行");
    }
}
